package com.foreknow.demo01;

/**
 * 逻辑运算符：表示两个逻辑类型(boolean)的操作
 * 与(&&):A&&B 表示一定要满足A和B两个条件
 * 或(||): A||B 表示至少要满足A和B两个条件之一
 * 非(!) : !A 表示A的逻辑取反
 *
 * 注意：在逻辑运算符中会存在短路的现象
 */
public class OperationDemo5 {
  public static void main(String[] args) {
//    int a = 5;
//    int b = 3;
//    int c = 2;
//
//    boolean x1 = (a>b)&&(b>c);
//    boolean x2 = (a>b)&&(b<c);
//    System.out.println(x1);
//    System.out.println(x2);
//
//
//    boolean x3 = (a>b)||(b>c);
//    boolean x4 = (a>b)||(b<c);
//    boolean x5 = (a<b)||(b<c);
//    System.out.println(x3);
//    System.out.println(x4);
//    System.out.println(x5);
//
//    System.out.println("--------------------------");
//
//    boolean x6 = !(a>b);
//    System.out.println(x6);

    //短路的现象
    int i = 5;
    boolean x = (i++ > 5) && (++i < 6);
    System.out.println(x);
    System.out.println(i);

    //面试题
    //&（位与）与 && 的区别？
    //&它不是短路的而&&它是短路的

  }
}
